
import logging
log = logging.getLogger(__name__)

class AuthorityUser(object):
    '''
    Basic user object
    
    An Authority "user object" must have the following attributes:
      * name - a string
      * groups - a list (may be empty)
      * permissions - a list (may be empty)
      
    A user object may have additional attributes which may be used in client
    code (or even custom conditions), but Authority itself should never 
    depend on those attributes being present.
    '''
    #~ def __init__(self, scheme):
    def __init__(self):
        '''
        
        '''
        self.name = 'anonymous'
        self.groups = []
        self.permissions = []
        # other user metadata should probably be attributes of this object
        # e.g. user.email = usersemail@example.com
        #      user.favorite_color = blue
        #      etc...
